package com.joker.product.mapper;

import com.joker.product.domain.Merchant;
import com.joker.product.domain.PmsSkuInfo;
import com.joker.product.domain.vo.SkuWarningVO;
import com.joker.product.query.PmsSkuQuery;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * sku信息Mapper接口
 *
 * @author jorker
 * @date 2024-12-24
 */
@Mapper
@Repository
public interface PmsSkuInfoMapper
{
    /**
     * 查询sku信息
     *
     * @param skuId sku信息主键
     * @return sku信息
     */
    public PmsSkuInfo selectPmsSkuInfoBySkuId(Long skuId);

    /**
     * 查询sku信息列表
     *
     * @param pmsSkuInfo sku信息
     * @return sku信息集合
     */
    public List<PmsSkuInfo> selectPmsSkuInfoList(PmsSkuInfo pmsSkuInfo);

    /**
     * 新增sku信息
     *
     * @param pmsSkuInfo sku信息
     * @return 结果
     */
    public int insertPmsSkuInfo(PmsSkuInfo pmsSkuInfo);

    /**
     * 修改sku信息
     *
     * @param pmsSkuInfo sku信息
     * @return 结果
     */
    public int updatePmsSkuInfo(PmsSkuInfo pmsSkuInfo);

    /**
     * 删除sku信息
     *
     * @param skuId sku信息主键
     * @return 结果
     */
    public int deletePmsSkuInfoBySkuId(Long skuId);

    /**
     * 批量删除sku信息
     *
     * @param skuIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deletePmsSkuInfoBySkuIds(Long[] skuIds);



    /**
     * 查询库存小于等于预警值的sku
     * @param query 条件
     * @return sku列表
     */
    List<SkuWarningVO> getWarningList(PmsSkuQuery query);

    /**
     *
     * @param skuId
     * @return
     */
    Merchant selectMerchantBySkuId(Long skuId);

    /**
     * 查询所有库存
     */
    List<PmsSkuInfo> selectSkuInfoInventory();
}
